package com.gxp.system.service;

import com.gxp.system.domain.ZknjProject;

import java.util.List;

/**
 * 项目Service接口
 * 
 * @author zh
 * @date 2024-07-09
 */
public interface IZknjProjectService 
{
    /**
     * 查询项目
     * 
     * @param proId 项目主键
     * @return 项目
     */
    public ZknjProject selectZknjProjectByProId(Long proId);

    /**
     * 查询项目列表
     * 
     * @param zknjProject 项目
     * @return 项目集合
     */
    public List<ZknjProject> selectZknjProjectList(ZknjProject zknjProject);

    /**
     * 新增项目
     * 
     * @param zknjProject 项目
     * @return 结果
     */
    public int insertZknjProject(ZknjProject zknjProject, String managers, String requesters, String services);

    /**
     * 修改项目
     * 
     * @param zknjProject 项目
     * @return 结果
     */
    public int updateZknjProject(ZknjProject zknjProject);

    /**
     * 批量删除项目
     * 
     * @param proIds 需要删除的项目主键集合
     * @return 结果
     */
    public int deleteZknjProjectByProIds(String proIds);

    /**
     * 删除项目信息
     * 
     * @param proId 项目主键
     * @return 结果
     */
    public int deleteZknjProjectByProId(Long proId);

    /**
     * 根据申请者查询project
     * @param userId
     * @return
     */
    List<ZknjProject> selectZknjProjectByUser(Long userId);

    /**
     * 项目审核
     */
    int approve(ZknjProject zknjProject);

    /**
     * 项目名校验
     */
    boolean checkProNameUnique(ZknjProject zknjProject);

    /**
     * 获取managers字符串
     */
    String getManagersByProId(Long proId);

    /**
     * 获取requesters字符串
     */
    String getRequestersByProId(Long proId);

    /**
     * 获取instruments字符串
     */
    String getInstrumentsByProId(Long proId);

    /**
     * 获取services字符串
     */
    String getServicesByProId(Long proId);
}
